import geo
import pandas as pd
#导入pandas库，并导入geo.PY文件，目的为调用geo.py中的函数和pandas中的函数

#定义公共交通函数，输入调用API的验证密匙，以及输入地址字符和输出地址字符串
def direction_bus(key,start_address, end_address):
    """    """
    start = geo.geocode(key,start_address)['geocodes'][0]['location']#对开始地址的字符串调用geo函数和进行运算，以反馈开始地址的经纬度坐标
    end = geo.geocode(key,end_address)['geocodes'][0]['location']#对结束地址的字符串调用geo函数和进行运算，以反馈结束地址的经纬度坐标
    results = geo.bus(key,start,end) #调用bus函数，输入API密匙，由上述两个步骤获取到的两地经纬度的坐标
    df = pd.json_normalize(results['route']['transits'][0]['segments'][0]['bus']['buslines'])#对反馈的结果进行查询，需要用到的数据都在子目录'buslines'中
    return df #返回查询到的数据

#定义距离查询函数，直接从上一个函数的buslines目录中获取到distance距离的信息，由于每次返回的路径信息都是分段的，因此需要对每一段的距离进行相加得到总距离
def total_bus(df):
    """    """
    distance = df['distance'].to_list()
    sum_num = 0
    for i in distance:
        sum_num += int(i)
    return sum_num

#定义距离查询函数，直接从上一个函数的buslines目录中获取到dduration持续时间的信息，由于每次返回的时间信息都是分段的，因此需要对每一段的时间进行相加得到总距离
def total_bus_time(df):
    """    """
    duration = df['duration'].to_list()
    sum_num = 0
    for i in duration:
        sum_num += int(i)
    return sum_num // 60
